subroutine calculate_characteristics(points,time,edges,nodesforedges,&
    vertex3D,nVer3D,igT,jgT,ggT,maxR,maxZ,MN,vertex2D,nVer2D,nInCat2D,params,&
    numbersEl,nodesCount3D,elemsCount3D,edgesCount3D,edgesTermCount3D,&
    edgesNotTermCount3D,mTerm3d)
    common /characteristics/ nPoints,nMn
    common /dimTask2D/ nodesCount2D,elemsCount2D,nodesBoundCount2D,nodesTermCount2D,&
    m2D,mTerm2d,nodesNotTermCount2D,nMaterials2d
    common /commonInfo/ eps2d,eps3d,eps3dNS,radiusRED,maxiter,typeTask,nt,nMaterials
    common /files_common/ infite_0,num_slae,log_txt,typeTask_txt
    real*8 eps2d,eps3d,eps3dNS,radiusRED,time,points,strength,coef,vertex3D,ggT,MN,&
    vertex2D,params,maxR,maxZ
    integer elemsCount2D,typeTask,typeTask_txt,edges,elemsCount3D,&
    edgesCount3D,searchElement3D,edgesTermCount3D,edgesNotTermCount3D
    character*4 Ext
    dimension time(nt),points(3,nPoints),edges(12,elemsCount3D),&
    nodesforedges(3,edgesCount3D),vertex3D(3,nodesCount3D),nVer3D(14,elemsCount3D),&
    igT(edgesTermCount3D+1),jgT(mTerm3d),ggT(mTerm3d),MN(6,nMn),&
    vertex2D(2,nodesCount2D),nVer2D(4,elemsCount2D),nInCat2D(elemsCount2D),&
    params(nMaterials2d),numbersEl(4,nodesCount2D)

1   format(A,i8,' nMN =',i8)
    write(*,1)'SP: Calculation characteristics:  nPoints =',nPoints,nMN
    write(log_txt,1)'SP: Calculation characteristics:  nPoints =',nPoints,nMN

    call calculate_characteristics_normal(points,vertex2D,nVer2D,nInCat2D,&
    params,numbersEl,time,MN,maxR,maxZ)
    call calculate_characteristics_anomal(points,time,edges,nodesforedges,&
    vertex3D,nVer3D,igT,jgT,ggT,MN,nt,nodesCount3D,elemsCount3D,&
    edgesCount3D,edgesTermCount3D,edgesNotTermCount3D,mTerm3d)
end
!*************************************************************************
!*************************************************************************
!*************************************************************************